package com.kpmg.datalake.common.service;

import com.alibaba.druid.sql.parser.Token;
import com.kpmg.datalake.common.vo.KeyAndValueDTO;
import com.kpmg.datalake.common.vo.ThreeParameter;
import java.util.List;

/**
 * @author Alex.zhao [alex.zhao@kpmg.com]
 * @since Created on azhao6 on 2018-08-22 17:27:16
 */
public interface SqlParseService {

  /**
   * 项目ID
   */
  String PROJECT_ID = "projectId";
  /**
   * 解析string 变成sql
    * @param sqlData 数据对象
   * @return sql对象
   */
  ThreeParameter<Boolean, List<KeyAndValueDTO<Token, String>>, String> parseStringToSql(
      String sqlData);

  /**
   * sql执行
   *
   * @param database 数据库数据源ID
   * @param sqlList sql信息
   * @param useDynamicDB 是否使用动态数据源
   */
  void executeSQL(String database, List<KeyAndValueDTO<Token, String>> sqlList,
      Boolean useDynamicDB);
}
